The following documents are incorporated herein by reference:
Rosenberg, J., etc., SIP: Session Initiation Protocol, RFC 3261;
Rosenberg, J. “A Watcher Information Event Template-Package for SIP”, draft-ietf-simple-winfo-package-05.txt. Internet Draft, Jan. 2003, Work in progress;
Rosenberg, J., “An XML Based Format for Watcher Information”, draft-ietf-impp-cpim-pidf-05.txt. Internet Draft, Jan. 2003, Work in Progress.
Roach, A., “SIP-Specific Event Notification”, RFC 3265, Internet Engineering Task Force, Jun. 2002; and
Kiss, K. et al., “Requirements for Filtering of Watcher Information”, draft-kiss-simple-winfo-filter-reqs-00.txt. Internet Draft, Feb. 2003, Work in progress.
With today's widespread use of the Internet as a primary communication medium, data communication devices are now being designed so that they are capable of communicating over packet-switched networks. For instance, telephones, pagers, cell phones, handheld computers, and even fax machines can now be accessed and controlled from the Internet. Communication over a packet-switched network using communication devices that traditionally communicate over a circuit-switched telephone network is generally known as network telephony, or IP telephony when an IP network is involved.
Various types of user communication devices (e.g., a cell phone, laptop or handheld PC, desktop PC) can identify themselves to the network using a suitable identifier (e.g., username@a.com). “Presence” refers to, for example, the availability, proximity, activity level or operating state of a user on a network. The ability for users to monitor each other's presence is a feature offered in connection with many applications that support network telephony. For example, instant messaging applications such as MSN or Yahoo have an “available buddy” feature, in which a user of the application can determine whether select users are available for engaging in communication. The data retrieved and returned to the buddy list, e.g. “John OFFLINE” or “Susan ACTIVE,” is known as “presence information,” and is generally maintained by a presence server in the data network, often a dedicated server. Typically, the presence server supports network telephony protocols such as the session initiation protocol (SIP). Users can register their communication devices with the presence server in order to have their presence maintained and to allow various programs on the network to facilitate network telephony services. A first device user wishing to detect the presence of a second device user does so by “subscribing” with the presence server, such as via a SIP SUBSCRIBE message. The presence server intermediates between the first device user (also known as the watcher or subscriber), and the second device user to facilitate the communication of the second device user's presence information to the first device user.
The ability of a presence server to accurately determine and maintain presence information for one or more users significantly enhances communication and task completion over the network. For example, a very mobile user may only be on the network at certain times throughout the day, and may be accessing the network from varying locations. By subscribing as a watcher of this mobile user, it becomes possible for another user to detect the presence of the mobile user during the times at which the mobile user's device is actually connected to the network. So, when the mobile user is present, the watcher can correspond instantly with the mobile user, for example via a chat session or videoconferencing call, as opposed to resorting to a non-real-time communication such as e-mail messaging. Hence, presence is an important factor for facilitating communication between users.
FIG. 1 diagrammatically illustrates an example of a conventional arrangement wherein a presence server 11 provided in a data network (e.g., Internet) provides to the user of a first communication device 13 information indicative of the presence state of a second communication device 15. The device 13 is also referred to as the subscriber or watcher, and the device 15 includes a presence user agent (PUA) or presentity. The presence server 11 includes a policy engine which is responsive to information received from the watcher/subscriber 13 for determining what portion of the presence information of the device 15 (provided to server 11 by device 15 in a SIP PUBLISH message) will be provided to the watcher/subscriber 13. The subscriber 13 utilizes a SIP SUBSCRIBE message to provide to the presence server 11 watcher filter information which can limit the amount of presence information that the presence server 11 will provide to the watcher 13 in a SIP NOTIFY message. Thus, the watcher can decide which presence information of the presentity device 15 will be received by the watcher 13 in a NOTIFY message.
The watcher filtering capability can be useful, for example, if the subscriber 13 is a mobile wireless access device. This type of device typically includes characteristics such as high latency, low bandwidth, low data processing capability, small visual display and limited battery power. Therefore, such mobile wireless access devices can benefit from the ability to filter the presence information that the device 15 provides to the presence server 11 in a SIP PUBLISH message. Based on the watcher filter information provided by the watcher/subscriber 13, the policy engine residing in the presence server 11 will filter (in accordance with the watcher filter) the presence information provided by the presentity 15, and will then provide this filtered information to the watcher/subscriber 13 in a NOTIFY message. The presence server updates the presence information to the watcher 13 in an appropriate NOTIFY message every time there is a change in the state of the watcher-filtered presence information. Also, when a NOTIFY message to the watcher 13 is triggered, communication resources can be conserved by including in the NOTIFY message only the changed portion (or portions) of the watcher-filtered presence information that triggered the new NOTIFY message. In some cases, the watcher's filter will filter out most of the presence information provided by the presentity 15.
For any given watcher, the presentity user can give the presence server 11 a “yes” or “no” instruction as to whether or not that watcher can even receive any of the presentity's presence information, regardless of watcher-filtering. A “yes” instruction permits the watcher to receive presence information, filtered by any applicable watcher filter. A “no” instruction prevents the watcher from receiving any presence information, regardless of any applicable watcher filtering.
In view of the foregoing, it can be seen that only the watcher/subscriber can adjust the level of its access to presence information.
Exemplary embodiments of the invention can provide an enhanced capability of adjusting the watcher's level of access to presence information by providing for the filtering of the presence information based on information provided by a source other than the watcher.